A Bus Functional Model (BFM) tests stimulus-response interaction, including timing, of the bus operation of a modeled device. Many BFM""s also include control mechanisms to generate read cycles, write cycles, idle cycles, read-modify-write cycles, cache hits, cache misses, interrupts, interrupt acknowledgments, direct memory access calls, and the like. Thus, a BFM is a tool providing system designers with a method of designing and debugging components and systems. Further, by utilizing a BFM a system designer may be aided in verifying component/system function prior to fabrication. Therefore, a BFM may be utilized to define the operation of a component/system interface with respect to its surrounding environment (i.e., one or more busses). By utilizing a BFM the interface between components in a system environment may be modeled in detail and data, timing, and functional checks may be monitored for errors. In this fashion a BFM may be readily utilized to demonstrate the functionality of a hardware design. However, a standardized, parameterized, and re-usable BFM which may be readily configured for multiple device models and design verification test benches in a design verification test environment is not available. Therefore, it would be desirable to provide a BFM capable of configuration for multiple device models and design verification test benches.
The present invention is directed to a Bus Functional Model (BFM) method and system and more particularly to an adaptable BFM capable of configuration for multiple device models and design verification test benches. Current BFM""s are customized for a specific function/task (component, system) and usually require extensive re-coding to be utilized in modeling similar components/systems. The BFM method and system of the present invention utilizes a standardized and parameterized BFM data structure. As a result of this standardized and parameterized BFM data structure, variations and multiple instances of test bench models may be generated and instantiated in a design test environment. Thus, the present invention may be utilized to save development time, simplify code maintenance, and allow for modeling additional component/system features.
In operation, the universal BFM of the present invention sub-divides unique functions and data structures into separate blocks. For example, standardized data structures may be re-used within said standardized individual functional blocks for various functions and tasks (components, systems). Thus, for each behavioral BFM instantiated (or implemented) in a simulation design test bench environment, the device model structure of the present invention operates as a master and/or slave device so as to configure itself based on the bus interface requirements specified. In this regard the BFM of the present invention is capable of generating simulation run-time parameters based upon the operational characteristics of the interacting elements of the component/system being tested.